#ifndef _H_FILEENC
#define _H_FILEENC

#include <wchar.h>
#include "hplatform.h"

#ifdef __cplusplus
extern "C" {
#endif // #ifdef __cplusplus

int HPLATFORMCALL gdsb_encrypt_to(const char* enc_this, const char* to_this, int* keys, int key_count);
#if _MSC_VER
int HPLATFORMCALL gdsb_encrypt_to16(const wchar_t* enc_this, const wchar_t* to_this, int* keys, int key_count);
#endif // #if _MSC_VER

int HPLATFORMCALL gdsb_decrypt_to(const char* dec_this, const char* to_this, int* keys, int key_count);
#if _MSC_VER
int HPLATFORMCALL gdsb_decrypt_to16(const wchar_t* dec_this, const wchar_t* to_this, int* keys, int key_count);
#endif // #if _MSC_VER

// if the file is encrypted, return value is 0, otherwise 1. 
// keys and key_count parameter can be null if you wanna check file status only.
int HPLATFORMCALL gdsb_getenckeys(const char* file_name, int* keys, int* key_count);
#if _MSC_VER
int HPLATFORMCALL gdsb_getenckeys16(const wchar_t* file_name, int* keys, int* key_count);
#endif // #if _MSC_VER

#ifdef __cplusplus
}
#endif // #ifdef __cplusplus

#endif // #ifndef _H_FILEENC
